#region Using directives
using System;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;
#endregion

namespace SharpWind.Graphics.Geometry
{
	public class Vertex
	{
		#region Fields

		private Vector3 translation = Vector3.Empty;

		private Vector3 normal = Vector3.Empty;

		private float tu = 0f;

		private float tv = 0f;

		#endregion

		#region Constructor
		
		public Vertex()
		{
			this.translation = new Vector3();
			this.normal		 = new Vector3();
			this.tu			 = 0f;
			this.tv			 = 0f;
		}

		public Vertex( Vector3 position, Vector3 normal, float tu, float tv )
		{
			this.translation = position;
			this.normal		 = normal;
			this.tu			 = tu;
			this.tv			 = tv;
		}

		#endregion

		#region Properties

		public static VertexFormats Format
		{
			get
			{
				return VertexFormats.Position | VertexFormats.Normal | VertexFormats.Texture1;
			}
		}

		public Vector3 Translation
		{
			get
			{
				return this.translation;
			}
			set
			{
				this.translation = value;
			}
		}

		public Vector3 Normal
		{
			get
			{
				return this.normal;
			}
			set
			{
				this.normal = value;
			}
		}

		public float Tu
		{
			get
			{
				return this.tu;
			}
			set
			{
				this.tu = value;
			}
		}

		public float Tv
		{
			get
			{
				return this.tv;
			}
			set
			{
				this.tv = value;
			}
		}

		#endregion
	}
}